package cc.rengu.igas.momp.common.dao;

import cc.rengu.igas.momp.common.entity.*;
import cc.rengu.oltp.utility.bean.PageInfo;
import cc.rengu.oltp.utility.bean.PageResult;

import java.util.List;

/**
 * 业务数据临时表数据库操作接口定义
 *
 * @author Jinan Liu
 * @version 1.0.0
 * @date 2020/3/25 21:42
 */
public interface PlatBizTmpMapper {

    /**
     * 获取营销活动机构信息列表数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMPlatBizTmp>
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/28 19:00
     */
    List<TMPlatBizTmp> selectTmpMcOrgInfo(String instId, String mcNo) throws Exception;

    /**
     * 获取营销活动商户信息列表数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMPlatBizTmp>
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/28 19:00
     */
    List<TMPlatBizTmp> selectTmpMcMchntInfo(String instId, String mcNo) throws Exception;

    /**
     * 获取营销活动时间信息列表数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMPlatBizTmp>
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/28 19:00
     */
    List<TMPlatBizTmp> selectTmpMcTimeInfo(String instId, String mcNo) throws Exception;

    /**
     * 获取营销活动用户信息列表数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMPlatBizTmp>
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/28 19:00
     */
    List<TMPlatBizTmp> selectTmpMcUserInfo(String instId, String mcNo) throws Exception;

    /**
     * 获取营销活动支付产品信息列表数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMPlatBizTmp>
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/28 19:00
     */
    List<TMPlatBizTmp> selectTmpMcProductInfo(String instId, String mcNo) throws Exception;

    /**
     * 获取代理商营销活动信息数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return cc.rengu.igas.momp.common.entity.TMPlatBizTmp
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/28 19:01
     */
    TMPlatBizTmp selectTmpAgentProfitSharingMcInfo(String instId, String mcNo) throws Exception;

    /**
     * 获取收银员返现营销活动信息数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return cc.rengu.igas.momp.common.entity.TMPlatBizTmp
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/28 19:01
     */
    TMPlatBizTmp selectTmpCashierCashbackMcInfo(String instId, String mcNo) throws Exception;

    /**
     * 获取卡券营销活动信息数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return cc.rengu.igas.momp.common.entity.TMPlatBizTmp
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/28 19:01
     */
    TMPlatBizTmp selectTmpCouponMcInfo(String instId, String mcNo) throws Exception;

    /**
     * 获取商户手续费营销活动信息数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return cc.rengu.igas.momp.common.entity.TMPlatBizTmp
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/28 19:01
     */
    TMPlatBizTmp selectTmpMchntFeeDiscountMcInfo(String instId, String mcNo) throws Exception;

    /**
     * 获取营销活动基本信息数据库操作接口定义
     * 各类营销活动通用接口
     *
     * @param instId    法人机构号
     * @param mcNo      营销活动编号
     * @param tableName 数据库表名
     * @return cc.rengu.igas.momp.common.entity.TMPlatBizTmp 业务数据临时表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/26 03:11
     */
    TMPlatBizTmp selectTmpMcInfo(String instId, String mcNo, String tableName) throws Exception;


    /**
     * 获取代理商营销活动规则信息数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMPlatBizTmp> 业务数据临时表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/28 19:01
     */
    List<TMPlatBizTmp> selectTmpAgentProfitSharingMcRuleInfo(String instId, String mcNo) throws Exception;

    /**
     * 获取收银员返现营销活动规则信息数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMPlatBizTmp> 业务数据临时表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/28 19:02
     */
    List<TMPlatBizTmp> selectTmpCashierCashbackMcRuleInfo(String instId, String mcNo) throws Exception;

    /**
     * 获取卡券营销活动规则信息数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMPlatBizTmp> 业务数据临时表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/28 19:02
     */
    List<TMPlatBizTmp> selectTmpCouponMcRuleInfo(String instId, String mcNo) throws Exception;

    /**
     * 获取商户手续费减免营销活动规则信息数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMPlatBizTmp> 业务数据临时表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/28 19:02
     */
    List<TMPlatBizTmp> selectTmpMchntFeeDiscountMcRuleInfo(String instId, String mcNo) throws Exception;

    /**
     * 获取减免营销活动规则信息数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMPlatBizTmp> 业务数据临时表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/28 19:02
     */
    List<TMPlatBizTmp> selectTmpMoneyOffMcRuleInfo(String instId, String mcNo) throws Exception;

    /**
     * 使用主键更新代理商营销活动审批状态数据库操作接口定义
     *
     * @param instId      法人机构号
     * @param mcNo        营销活动编号
     * @param auditStatus
     * @return int
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/6 22:17
     */
    int updateAgentProfitSharingMcAuditStatusByPrimaryKey(String instId, String mcNo, String auditStatus) throws Exception;

    /**
     * 使用主键更新收银员返现类营销活动审批状态数据库操作接口定义
     *
     * @param instId      法人机构号
     * @param mcNo        营销活动编号
     * @param auditStatus
     * @return int
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/6 22:17
     */
    int updateCashierCashbackMcAuditStatusByPrimaryKey(String instId, String mcNo, String auditStatus) throws Exception;

    /**
     * 使用主键更新卡券类营销活动审批状态数据库操作接口定义
     *
     * @param instId      法人机构号
     * @param mcNo        营销活动编号
     * @param auditStatus
     * @return int
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/6 22:17
     */
    int updateCouponMcAuditStatusByPrimaryKey(String instId, String mcNo, String auditStatus) throws Exception;

    /**
     * 使用主键更新商户手续费优惠类营销活动审批状态数据库操作接口定义
     *
     * @param instId      法人机构号
     * @param mcNo        营销活动编号
     * @param auditStatus
     * @return int
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/6 22:17
     */
    int updateMchntFeeDiscountMcAuditStatusByPrimaryKey(String instId, String mcNo, String auditStatus) throws Exception;

    /**
     * 使用主键更新卡券类营销活动审批状态数据库操作接口定义
     *
     * @param instId         法人机构号
     * @param mcNo           营销活动编号
     * @param auditStatus    审批状态
     * @param newAuditStatus 新审批状态
     * @param bizStatus      状态
     * @param mcStatus       营销活动状态
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/6 22:17
     */
    int updateTmpMcAuditStatusByPrimaryKey(String instId, String mcNo, String auditStatus, String newAuditStatus, String bizStatus, String mcStatus) throws Exception;

    /**
     * 使用主键更新卡券类营销活动审批状态数据库操作接口定义
     * 只更新活动表数据
     *
     * @param instId         法人机构号
     * @param mcNo           营销活动编号
     * @param auditStatus    审批状态
     * @param newAuditStatus 新审批状态
     * @param bizStatus      状态
     * @param mcStatus       营销活动状态
     * @return int 返回码
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/4/6 22:17
     */
    int updateTmpMcInfoAuditStatusByPrimaryKey(String instId, String mcNo, String tableName, String auditStatus, String newAuditStatus, String bizStatus, String mcStatus) throws Exception;

    /**
     * 使用主键更新卡券类营销活动审批状态数据库操作接口定义
     * 更新除活动表外的其他数据
     *
     * @param instId         法人机构号
     * @param mcNo           营销活动编号
     * @param auditStatus    审批状态
     * @param newAuditStatus 新审批状态
     * @param bizStatus      状态
     * @param mcStatus       营销活动状态
     * @return int 返回码
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/4/6 22:17
     */
    int updateTmpMcOtherAuditStatusByPrimaryKey(String instId, String mcNo, String tableName, String auditStatus, String newAuditStatus, String bizStatus, String mcStatus) throws Exception;


    /**
     * 使用主键更新商户手续费优惠类营销活动审批状态数据库操作接口定义
     *
     * @param instId         法人机构号
     * @param mcNo           营销活动编号
     * @param auditStatus    审批状态
     * @param newAuditStatus 新审批状态
     * @param bizStatus      状态
     * @param mcStatus       营销活动状态
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/6 22:17
     */
    int updateTmpMfdMcAuditStatusByPrimaryKey(String instId, String mcNo, String auditStatus, String newAuditStatus, String bizStatus, String mcStatus) throws Exception;

    /**
     * 删除临时表草稿状态营销活动数据数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/7 01:27
     */
    int deleteTmpMcDataByMcNo(String instId, String mcNo) throws Exception;

    /**
     * 删除临时表营销活动相关数据数据库操作接口定义
     * 保留营销活动商户列表
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return int 返回码
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/6/4 20:27
     */
    int deleteTmpMcDataRetainMchntListByMcNo(String instId, String mcNo) throws Exception;

    /**
     * 使用营销活动编号和营销活动审批状态更新营销活动状态、审批状态和状态数据库操作接口定义
     *
     * @param instId         法人机构号
     * @param mcNo           营销活动编号
     * @param bizStatus      状态
     * @param mcStatus       营销活动状态
     * @param newAuditStatus 新审批状态
     * @param oldAuditStatus 老审批状态
     * @param oprId          操作员ID
     * @param timeStamp      时间戳
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/7 01:43
     */
    int updateTmpMcAllStatusByMcNoAndAuditStatus(String instId, String mcNo, String bizStatus, String mcStatus, String newAuditStatus, String oldAuditStatus, String oprId, String timeStamp) throws Exception;

    /**
     * 使用营销活动编号和营销活动审批状态更新临时表营销活动信息接口定义
     *
     * @param instId         法人机构号
     * @param mcNo           营销活动编号
     * @param tableName      营销活动表名
     * @param bizStatus      状态
     * @param mcStatus       营销活动状态
     * @param newAuditStatus 新审批状态
     * @param oldAuditStatus 老审批状态
     * @param oprId          操作员ID
     * @param timeStamp      时间戳
     * @return int 返回码
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2021/6/10 17:43
     */
    int updateTmpMcInfoStatusByMcNoAndAuditStatus(String instId, String mcNo, String tableName, String bizStatus, String mcStatus, String newAuditStatus, String oldAuditStatus, String oprId, String timeStamp) throws Exception;

    /**
     * 使用营销活动编号和营销活动审批状态更新临时表营销活动信息之外的其他表数据接口定义
     *
     * @param instId         法人机构号
     * @param mcNo           营销活动编号
     * @param tableName      营销活动表名
     * @param bizStatus      状态
     * @param mcStatus       营销活动状态
     * @param newAuditStatus 新审批状态
     * @param oldAuditStatus 老审批状态
     * @param oprId          操作员ID
     * @param timeStamp      时间戳
     * @return int 返回码
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2021/6/10 17:43
     */
    int updateTmpMcOtherStatusByMcNoAndAuditStatus(String instId, String mcNo, String tableName, String bizStatus, String mcStatus, String newAuditStatus, String oldAuditStatus, String oprId, String timeStamp) throws Exception;

    /**
     * 使用营销活动编号和营销活动审批状态更新营销活动审批状态数据库操作接口定义
     *
     * @param instId         法人机构号
     * @param mcNo           营销活动编号
     * @param newAuditStatus 新审批状态
     * @param oldAuditStatus 老审批状态
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/7 01:43
     */
    int updateTmpMcAuditStatusByMcNoAndAuditStatus(String instId, String mcNo, String newAuditStatus, String oldAuditStatus) throws Exception;

    /**
     * 进行中营销活动添加商户数据库操作接口定义
     *
     * @param tmPlatBizTmpList
     * @return int
     * @throws Exception
     * @author Jinan Liu
     * @date 2020/4/9 11:44
     */
    int insertMchntDataForUnderwayMc(List<TMPlatBizTmp> tmPlatBizTmpList) throws Exception;

    /**
     * 减免类营销活动插入临时表数据库操作接口定义
     *
     * @param tmPlatBizTmp 业务数据临时表
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/22 15:34
     */
    int insertMcInfoByBank(TMPlatBizTmp tmPlatBizTmp) throws Exception;

    /**
     * 营销活动除营销活动基本信息外的数据的列表插入临时表数据库操作接口定义
     *
     * @param tmPlatBizTmpList 业务数据临时表
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 22:15
     */
    int insertMultiMcDetialInfoByBank(List<TMPlatBizTmp> tmPlatBizTmpList) throws Exception;

    /**
     * 营销活动除营销活动基本信息外的数据的列表插入临时表数据库操作接口实现
     *
     * @param tmPlatBizTmpList 业务数据临时表
     * @return int 返回码
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2021/6/7 16:15
     */
    int deleteMultiMcMchntListByBank(List<TMPlatBizTmp> tmPlatBizTmpList) throws Exception;

    /**
     * 减免类营销活动发布更新状态数据库操作接口定义
     *
     * @param tmPlatBizTmp 业务数据临时表
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/25 22:30
     */
    int updateSingleMcInfoForPublishing(TMPlatBizTmp tmPlatBizTmp) throws Exception;

    /**
     * 取营销活动商户规则列表信息数据库操作接口定义
     *
     * @param tmPlatBizTmp 业务数据临时表
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMPlatBizTmp> 业务数据临时表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/25 23:03
     */
    List<TMPlatBizTmp> selectNewAddedMchntInfoForPublishing(TMPlatBizTmp tmPlatBizTmp) throws Exception;

    /**
     * 分页查询营销活动商户规则列表信息数据库操作接口定义
     *
     * @param tmPlatBizTmp 业务数据临时表
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMPlatBizTmp> 业务数据临时表
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2021/8/11 13:03
     */
    PageResult selectNewAddedMchntInfoForPublishing(TMPlatBizTmp tmPlatBizTmp, PageInfo pageInfo) throws Exception;

    /**
     * 减免类营销活动发布拒绝更新状态数据库操作接口定义
     *
     * @param tmPlatBizTmp 业务数据临时表
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/26 01:05
     */
    int updateMcAuditStatusForPublishingRefusal(TMPlatBizTmp tmPlatBizTmp) throws Exception;

    /**
     * 启用已暂停营销活动数据库操作接口定义
     * 目前支持减免类\卡券类和收银员返现类营销活动
     * 启用已暂停\暂停进行中\强制终止进行中营销活动时使用
     *
     * @param tmPlatBizTmp 业务数据临时表
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/26 01:35
     */
    int updatePausedMcForEnabling(TMPlatBizTmp tmPlatBizTmp) throws Exception;

    /**
     * 银行审批员查询所有商户手续费优惠类营销活动信息数据库操作接口定义
     *
     * @param mfdMcListInfoInObj 商户手续费优惠类营销活动列表查询使用实体类入参
     * @param pageInfo           数据库操作分页实体类
     * @return cc.rengu.oltp.utility.bean.PageResult 查询结果列表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 12:12
     * @version 1.0.0
     */
    PageResult selectMfdMcListInfoByBankAuditRole(MfdMcListInfoInObj mfdMcListInfoInObj, PageInfo pageInfo) throws Exception;

    /**
     * 银行审批员查询所有卡券类营销活动信息数据库操作接口定义
     *
     * @param cpMcListInfoInObj 卡券类营销活动列表查询使用实体类入参
     * @param pageInfo          数据库操作分页实体类
     * @return cc.rengu.oltp.utility.bean.PageResult 查询结果列表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 12:12
     * @version 1.0.0
     */
    PageResult selectCouponMcListInfoByBankAuditRole(CpMcListInfoInObj cpMcListInfoInObj, PageInfo pageInfo) throws Exception;

    /**
     * 银行审批员查询所有减免类营销活动信息数据库操作接口定义
     *
     * @param moMcListInfoInObj 营销活动列表查询使用实体类入参
     * @param pageInfo          数据库操作分页实体类
     * @return cc.rengu.oltp.utility.bean.PageResult 查询结果列表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 12:12
     * @version 1.0.0
     */
    PageResult selectMoneyOffMcListInfoByBankAuditRole(MoMcListInfoInObj moMcListInfoInObj, PageInfo pageInfo) throws Exception;

    /**
     * 银行审批员查询所有减免类营销活动信息数据库操作接口定义
     *
     * @param apsMcListInfoInObj 营销活动列表查询使用实体类入参
     * @param pageInfo           数据库操作分页实体类
     * @return cc.rengu.oltp.utility.bean.PageResult 查询结果列表
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/6/18 12:12
     * @version 1.0.0
     */
    PageResult selectApsMcListInfoByBankAuditRole(ApsMcListInfoInObj apsMcListInfoInObj, PageInfo pageInfo) throws Exception;

    /**
     * 银行审批员查询所有卡券类营销活动详细信息数据库操作接口定义
     *
     * @param cpMcListInfoInObj 卡券类营销活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMPlatBizTmp 业务数据临时表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 19:27
     */
    TMPlatBizTmp selectCouponMcDetailInfoByBankAuditRole(CpMcListInfoInObj cpMcListInfoInObj) throws Exception;

    /**
     * 银行审批员查询所有商户手续费优惠类营销活动详细信息数据库操作接口定义
     *
     * @param mfdMcListInfoInObj 商户手续费优惠类营销活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMPlatBizTmp 业务数据临时表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 19:27
     */
    TMPlatBizTmp selectMfdMcDetailInfoByBankAuditRole(MfdMcListInfoInObj mfdMcListInfoInObj) throws Exception;

    /**
     * 银行审批员查询所有减免类营销活动详细信息数据库操作接口定义
     *
     * @param moMcListInfoInObj 营销活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMPlatBizTmp 业务数据临时表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 19:27
     */
    TMPlatBizTmp selectMoneyOffMcDetailInfoByBankAuditRole(MoMcListInfoInObj moMcListInfoInObj) throws Exception;

    /**
     * 银行审批员查询所有代理商分润营销活动详细信息数据库操作接口定义
     *
     * @param moMcListInfoInObj 营销活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMPlatBizTmp 业务数据临时表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 19:27
     */
    TMPlatBizTmp selectApsMcDetailInfoByBankAuditRole(MoMcListInfoInObj moMcListInfoInObj) throws Exception;

    /**
     * 银行审批员查询指定营销活动所有减免类营销活动数据数据库操作接口定义
     *
     * @param moMcListInfoInObj 营销活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMPlatBizTmp 业务数据临时表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 19:27
     */
    List<TMPlatBizTmp> selectSingleMcAllDetailInfoByBankAuditRole(MoMcListInfoInObj moMcListInfoInObj) throws Exception;

    /**
     * 银行审批员查询指定营销活动所有减免类营销活动数据数据库操作接口定义
     * 分页查询接口
     *
     * @param moMcListInfoInObj 营销活动列表查询使用实体类入参
     * @param pageInfo          分页信息入参
     * @return cc.rengu.oltp.utility.bean.PageResult 分页数据
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2021/8/22 13:27
     */
    PageResult selectSingleMcAllDetailInfoByBankAuditRole(MoMcListInfoInObj moMcListInfoInObj, PageInfo pageInfo) throws Exception;

    /**
     * 银行审批员查询指定营销活动所有减免类营销活动数据数据库操作接口定义
     * 查询临时表，除去商户表信息
     *
     * @param moMcListInfoInObj 营销活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMPlatBizTmp 业务数据临时表
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/5/28 19:27
     */
    List<TMPlatBizTmp> selectSingleMcDetailInfoNoMchntByBankAuditRole(MoMcListInfoInObj moMcListInfoInObj) throws Exception;

    /**
     * 删错指定营销活动编号的所有草稿状态的数据数据数据库操作接口定义
     *
     * @param tmPlatBizTmp 业务数据临时表
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 23:04
     */
    int deleteAllDraftMcInfoByBank(TMPlatBizTmp tmPlatBizTmp) throws Exception;

    /**
     * 营销活动列表临时数据查询数据库操作接口定义
     *
     * @param platBizTmp 业务数据临时表
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMPlatBizTmp> 业务数据临时表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/30 12:31
     */
    List<TMPlatBizTmp> selectTmpMcListInfo(TMPlatBizTmp platBizTmp) throws Exception;

    /**
     * 银行审批员查询收银员返现活动信息数据库操作接口定义
     *
     * @param ccbMcListInfoInObj 收银员返现活动列表查询使用实体类入参
     * @param pageInfo           数据库操作分页实体类
     * @return cc.rengu.oltp.utility.bean.PageResult 查询结果列表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 12:12
     * @version 1.0.0
     */
    PageResult selectCcbMcListInfoByBankAuditRole(CcbMcListInfoInObj ccbMcListInfoInObj, PageInfo pageInfo) throws Exception;

    /**
     * 银行审批员查询所有收银员返现营销活动详细信息数据库操作接口定义
     *
     * @param ccbMcListInfoInObj 收银员返现活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMPlatBizTmp 业务数据临时表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 19:27
     */
    TMPlatBizTmp selectCashDetailInfoByBankAuditRole(CcbMcListInfoInObj ccbMcListInfoInObj) throws Exception;

    /**
     * 银行审批员查询指定营销活动收银员返现活动数据数据库操作接口定义
     *
     * @param ccbMcListInfoInObj 收银员返现活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMPlatBizTmp 业务数据临时表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 19:27
     */
    List<TMPlatBizTmp> selectCashierDetailInfoByBankAuditRole(CcbMcListInfoInObj ccbMcListInfoInObj) throws Exception;

    /**
     * 使用主键更新临时表各营销活动状态数据库操作接口实现
     *
     * @param instId         法人机构号
     * @param mcNo           营销活动编号
     * @param auditStatus    审批状态
     * @param newAuditStatus 新审批状态
     * @param bizStatus      状态
     * @param newBizStatus   新状态
     * @param newMcStatus    新营销活动状态
     * @return int 返回码
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/6/14 22:17
     */
    int updateTmpAllStatusByPrimaryKey(String instId, String mcNo, String auditStatus, String newAuditStatus,
                                       String bizStatus, String newBizStatus, String mcStatus, String newMcStatus) throws Exception;

    /**
     * 使用营销活动编号和营销活动审批状态更新营销活动状态、审批状态和状态以及审批拒绝原因数据库操作接口定义
     *
     * @param instId         法人机构号
     * @param mcNo           营销活动编号
     * @param tmPlatBizTmp   原临时表数据
     * @param oldAuditStatus 老审批状态
     * @param oprId          操作员ID
     * @param timeStamp      时间戳
     * @return int 返回码
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/7/4
     */
    int updateTmpMcInfoByMcNoAndAuditStatus(String instId, String mcNo, TMPlatBizTmp tmPlatBizTmp, String oldAuditStatus, String oprId, String timeStamp) throws Exception;

    /**
     * 使用营销活动编号和营销活动审批状态更新营销活动状态、审批状态和状态以及审批拒绝原因数据库操作接口定义
     * 更新临时表除活动信息外其他信息审批状态
     *
     * @param instId         法人机构号
     * @param mcNo           营销活动编号
     * @param tmPlatBizTmp   原临时表数据
     * @param oldAuditStatus 老审批状态
     * @param oprId          操作员ID
     * @param timeStamp      时间戳
     * @return int 返回码
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2021/6/4
     */
    int updateTmpMcOtherInfoByMcNoAndAuditStatus(String instId, String mcNo, String tableName, TMPlatBizTmp tmPlatBizTmp, String oldAuditStatus, String oprId, String timeStamp) throws Exception;

    /**
     * 使用营销活动编号和营销活动审批状态更新营销活动状态、审批状态和状态以及审批拒绝原因数据库操作接口定义
     * 更新临时表活动信息审批状态
     *
     * @param instId         法人机构号
     * @param mcNo           营销活动编号
     * @param tmPlatBizTmp   原临时表数据
     * @param oldAuditStatus 老审批状态
     * @param oprId          操作员ID
     * @param timeStamp      时间戳
     * @return int 返回码
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2021/6/4
     */
    int updateTmpMcCCBInfoByMcNoAndAuditStatus(String instId, String mcNo, String tableName, TMPlatBizTmp tmPlatBizTmp, String oldAuditStatus, String oprId, String timeStamp) throws Exception;

    /**
     * 使用营销活动编号和营销活动审批状态更新营销活动状态、审批状态和状态以及审批拒绝原因数据库操作接口定义
     *
     * @param instId         法人机构号
     * @param mcNo           营销活动编号
     * @param tmPlatBizTmp   原临时表数据
     * @param oldAuditStatus 老审批状态
     * @param oprId          操作员ID
     * @param timeStamp      时间戳
     * @return int 返回码
     * @throws Exception 异常信息
     * @author JL PANG
     * @date 2020/7/10
     */
    int updataTMPlatBizByinstIdMcNoTableNameAuditStatus(String instId, String mcNo, TMPlatBizTmp tmPlatBizTmp, String oldAuditStatus, String oprId, String timeStamp) throws Exception;

    /**
     * 营销活动除营销活动基本信息外的数据的列表更新临时表数据库操作接口定义
     *
     * @param tmPlatBizTmpList 业务数据临时表
     * @return int 返回码
     * @throws Exception 异常信息
     * @author JL PANG
     * @date 2020/7/10
     */
    int updataTMPlatBizByList(List<TMPlatBizTmp> tmPlatBizTmpList, String oprType) throws Exception;

    /**
     * 进行中商户新增查询是否已经新增查询
     *
     * @param tmPlatBizTmp 收银员返现活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMPlatBizTmp 业务数据临时表
     * @throws Exception 异常信息
     * @author JL PANG
     * @date 2020/7/10
     */
    List<TMPlatBizTmp> selectListByInstIdMcNoTableNameStatus(TMPlatBizTmp tmPlatBizTmp) throws Exception;

    /**
     * 删除临时表进行中商户
     *
     * @param tmPlatBizTmp 业务数据临时表
     * @return int 返回码
     * @throws Exception 异常信息
     * @author JL PANG
     * @date 2020/7/10
     */
    int deleteByStatusTablename(TMPlatBizTmp tmPlatBizTmp) throws Exception;

    /**
     * 删除临时表进行中商户
     *
     * @param tmPlatBizTmpList 业务数据临时表
     * @return int 返回码
     * @throws Exception 异常信息
     * @author JL PANG
     * @date 2020/7/10
     */
    int deleteByMcNoMchntNoTablename(List<TMPlatBizTmp> tmPlatBizTmpList) throws Exception;

    /**
     * 进行中添加商户查询指定活动下各种拒绝状态下的商户
     *
     * @param instId 法人机构号
     * @param mcNo   活动编号
     * @return cc.rengu.igas.momp.common.entity.TMPlatBizTmp 业务数据临时表
     * @throws Exception 异常信息
     * @author JL Pang
     * @date 2020/9/7 14:14
     */
    List<TMPlatBizTmp> selectMchntByInstIdMcNo(String instId, String mcNo) throws Exception;


    /**
     * 进行中添加商户查询指定活动下各种拒绝状态下的商户
     * 分页查询接口
     *
     * @param instId   机构编号入参
     * @param mcNo     活动编号入参
     * @param pageInfo 分页信息入参
     * @return cc.rengu.oltp.utility.bean.PageResult 分页数据
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2021/8/12 13:27
     */
    PageResult selectMchntByInstIdMcNo(String instId, String mcNo, PageInfo pageInfo) throws Exception;

    /**
     * 更改临时表进行中商户状态
     *
     * @param tmPlatBizTmp 业务数据临时表
     * @return int 返回码
     * @throws Exception 异常信息
     * @author JL PANG
     * @date 2020/7/10
     */
    int updateByInstIdMchntNoMcNo(TMPlatBizTmp tmPlatBizTmp) throws Exception;

    /**
     * @param tmPlatBizTmp 业务数据临时表
     * @return int 返回码
     * @throws Exception 异常信息
     * @Description 更新营销活动临时表信息  营销活动状态、 审批状态、 状态
     * @Author liujinan
     * @date 2020-09-15 19:49:23
     **/
    int updataTMPlatBizByinstIdMcNoTableNameStatus(TMPlatBizTmp tmPlatBizTmp) throws Exception;

    /**
     * @param tmPlatBizTmp 业务数据临时表
     * @return int 返回码
     * @throws Exception 异常信息
     * @Description 更新营销活动临时表信息  营销活动状态、 审批状态、 状态 (不更新业务实体 )
     * @Author liujinan
     * @date 2020-09-16 20:26:53
     **/
    int updataTMPlatBizByinstIdMcNoTableNameOnlyStatus(TMPlatBizTmp tmPlatBizTmp) throws Exception;

    /**
     * 更新营销活动临时表信息  审批状态
     *
     * @param instId      成员行号
     * @param mcNo        活动编号
     * @param auditStatus 审批状态
     * @return int 返回码
     * @throws Exception 异常信息
     * @Author liujinan
     * @Date 2020-09-16 20:26:53
     **/
    int updataTMPlaAuditStatusForMchntTask(String instId, String mcNo, String auditStatus, String tableName) throws Exception;

    /**
     * 更新营销活动临时表信息  审批状态
     *
     * @param instId    成员行号
     * @param mcNo      活动编号
     * @param mchntType 商户范围类型
     * @return int 返回码
     * @throws Exception 异常信息
     * @Author liujinan
     * @Date 2021-07-28 16:26:53
     **/
    int deletePlatBizTmpByMchntType(String instId, String mcNo, String mchntType) throws Exception;
}
